﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using App_Persistencia;
using System.Data;


namespace App_Negocio
{
    public class Bebida
    {
        int id;
        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        string nombre;
        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        string unidad_Medida;
        public string Unidad_Medida
        {
            get { return unidad_Medida; }
            set { unidad_Medida = value; }
        }
        float precio;
        public float Precio
        {
            get { return precio; }
            set { precio = value; }
        }

        string descripcion;

        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        private float cantEstimadaPorPersona;

        public float CantEstimadaPorPersona
        {
            get { return cantEstimadaPorPersona; }
            set { cantEstimadaPorPersona = value; }
        }


        public LinkedList<Bebida> popularBebida()
        {
            Bebida_Data bebida = new Bebida_Data();

            DataTable dataTable= bebida.popularBebidas();

            LinkedList<Bebida> lista = new LinkedList<Bebida>();
            Bebida item = null;
            foreach (DataRow dr in dataTable.Rows)
            {
                item = new Bebida();
                item.Id= int.Parse(dr["beb_Id"].ToString());
                item.Nombre= dr["beb_Nombre"].ToString();
                item.Unidad_Medida= dr["beb_UnidadMedida"].ToString();
                item.Precio = float.Parse(dr["beb_Precio"].ToString());
                item.Descripcion = dr["beb_Descripcion"].ToString();
                lista.AddLast(item);
            }

            return lista;
        }
        
        public void buscarUnaBebida()
        {
            Bebida_Data bebidaData = new Bebida_Data();
            bebidaData.Id = id;

            try
            {
                bebidaData.buscarUnaBebida();
                Precio = bebidaData.Precio;
                CantEstimadaPorPersona = bebidaData.CantEstimadaPorPersona;
            }
            catch (ApplicationException)
            {
                //si se genera una Exepcion de este tipo quiere decir que no se pudo grabar el registro
                //genero una nueva exepcion para la capa superior
                throw new ApplicationException();
            }

        }

        public static DataTable listarBebidas_Tabla(int idPresupuesto)
        {
            Bebida_Data bd = new Bebida_Data();
            DataTable tabla = bd.buscarBebidasPorPresupuesto(idPresupuesto);
            return tabla;
        }

        public static List<Bebida> listarBebidas_Lista(Presupuesto presu)
        {
            List<App_Negocio.Bebida> lista = new List<Bebida>();
            DataTable tabla = listarBebidas_Tabla(presu.Id);

            presu.BebidasTabla = tabla.DefaultView;

            App_Negocio.Bebida b = new Bebida();
            foreach (DataRow fila in tabla.Rows)
            {
                b = new Bebida();
                b.Id = int.Parse(fila["BebidaId"].ToString());
                b.Nombre = fila["Nombre"].ToString();
                b.Unidad_Medida = fila["UnidadMedida"].ToString();
                b.Precio = float.Parse(fila["Precio"].ToString());
                b.descripcion = fila["Descripcion"].ToString();
                lista.Add(b);
            }
            return lista;
        }
        
    }
}
